FIFO (First-in, First-Out) is used commonly in a bit-stream controller of a video decoder for buffering and flow control. It is often implemented as a circular queue, and thus has read and write pointers. Initially, both the read and write pointers are at the same memory location and the FIFO queue is empty. Conventionally, the video decoder must query FIFO empty status first to ensure the validity of stored data each time it reads the data, thus reducing the efficiency of the video decoder.
Therefore, there is a need for a bit-stream buffer controller which can refrain the video decoder from unnecessarily querying for FIFO empty status.